home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / russell / russell.lha / README < prev   
Text File  |  1993-03-19  |  5KB  |  100 lines

  1. Copyright 1986-1989 Hans-Juergen Boehm, Alan J. Demers, Kumar Srikantan,
  2. Vernon Lee, and Lucy Hederman.
  3. Copyright Digital Equipment Corporation & INRIA 1988, 1989.
  4. Copyright (c) 1990-1993 by Xerox Corporation.  All rights reserved.
  5.  
  6. This material is provided as is, with no warranty expressed or implied.
  7. Any use is at your own risk.
  8.  
  9. Permission is hereby granted to copy this compiler for any non-commercial
  10. purpose, provided the above notices are retained on all copies.  Further
  11. restrictions apply to the DEC/INRIA BigNum package.  These are stated in
  12. the file runtime/BigNum/doc/bnbody.tex.
  13.  
  14. This work uses the BigNum package developed jointly by INRIA and
  15. Digital PRL.  It has been modified by Hans-J. Boehm in August 1990
  16. and February 1993 at Xerox PARC.  When you receive this software,
  17. please send mail to librarian@prl.dec.com to inform them that you
  18. have a copy of the package.
  19.  
  20. ----------------------------------
  21.  
  22. This is V3.3 of the Russell compiler.  It has been recently used on
  23. SPARCstations and Sun 3 workstations under Sun OS 3.2,
  24. 3.5, 4.0, and 4.1.  The resulting code has been run on
  25. a variety of other machines as well.  Unlike previous versions,
  26. this version is configured to generate (totally unreadable) C code
  27. from the intermediate code used by the compiler.  A direct to
  28. VAX assembly code generator is included, but the supporting
  29. run-time system is not.  A Motorola 68020 code generator and
  30. run-time system are available, but not included here.
  31.  
  32. The distribution consists primarily of source code for the compiler,
  33. for the runtime environment, a collection of files comprising an
  34. on-line manual, and a collection of sample Russell programs, including
  35. a constructive real arithmetic package and desk calculator utility.
  36.  
  37. Installation instructions are provided in a file called "INSTALLATION"
  38. in this directory.
  39.  
  40. The authors would like to maintain a list of sites running the compiler.
  41. Please send notification of any new sites to boehm@xerox.com.
  42.  
  43. An early version of the compiler was developed at Cornell University
  44. under NSF grant MCS 01048 and amendment MCS 8104010, with the help of
  45. Philip Matthews and Jim Hook.  It was then further developed by the
  46. first author at the University of Washington, and at Rice University,
  47. with partial funding under NSF grant number DCR 8607200 and DARPA/NSF
  48. grant CCR 87-20277.  The 68020 code generator was built by Kumar Srikantan.
  49. The static garbage collector in lh_opt was written by Lucy Hederman.
  50. The desk calculator and the underlying constructive real arithmetic package
  51. were written by Hans-J. Boehm and Vernon Lee.
  52.  
  53. The Russell language was designed primarily by Alan Demers and
  54. J. Donahue.  The implementation is loosely based on "An Informal
  55. Description of Russell" (Boehm, Demers, and Donahue, Cornell Technical
  56. Report 80-430).  A more accurate description of the implemented
  57. language can be obtained through the supplied online manual, or
  58. from the "Programmer's Introduction to Russell" (Rice TR85-16).
  59. (A troff -me version of this report is included here as doc/intro.me.)
  60. A discussion of the design philosophy can be found "Data Types are
  61. Values", by Donahue and Demers, in the July 1985 issue of TOPLAS.
  62.  
  63. Disclaimers:
  64.  
  65. The Russell compiler has neither been verified, nor even thoroughly
  66. tested.  Bugs are not unheard of.  If you find any, please report
  67. them to Boehm@Rice.  Any use of the compiler is at your own risk.
  68.  
  69. Some of the code in the compiler is not beautiful.  The underlying
  70. syntax tree structure violates various C type checking rules.  (Hence the
  71. -w flags on many of the compilations.)  Reasons for this are largely
  72. historical.  (Parts of the compiler date back to 1979.)
  73.  
  74. The various ".mh" source files where automatically generated from
  75. "streedefs.h" and the corresponding ".m" file.  The generation was done
  76. with a modified version of cpp that we cannot easily redistribute.
  77.  
  78. The type inference algorithm used by the compiler is workable, but not
  79. entirely satisfactory.  In particular, it is enough of a heuristic
  80. that some experimentation is likely to be needed to discover what
  81. type information can be inferred automatically.  "rhelp inference"
  82. gives a very rough description of the algorithm.  For some ideas
  83. on how to do this right, see the Proceedings of the SIGPLAN '89
  84. Conference on Programming Language Design and Implementation.
  85.  
  86. The compiler itself is slow.  Fortunately machines have gotten fast
  87. enough that this is no longer very painful.  On a VAX 11/750, be
  88. prepared to wait and wait and ...
  89.  
  90. Try "rhelp hints" for further known peculiarities.
  91.  
  92. UNIX is a trademark of AT&T Bell Labs.
  93.  
  94. VAX is a trademark of Digital Equipment Corporation.
  95.  
  96. Sun 3 is a trademark of Sun Microsystems.
  97.  
  98. SPARCstation is a trademark of SPARC International.
  99.  
  100.